package svl;

import java.io.IOException;
import java.sql.Date;
import java.util.Calendar;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import comun.*;
import dao.*;

public class NuevoMail extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    public NuevoMail() 
    {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		//HttpSession sesion = request.getSession();
		
		String nomCasOrigen = request.getParameter("origen");
		String nomCasDestino = request.getParameter("destino");
		String asunto = request.getParameter("asunto");
		String prioridad = request.getParameter("prioridad");
		String texto = request.getParameter("texto");
		
		System.out.println(nomCasOrigen );
		System.out.println(nomCasDestino);
		System.out.println(asunto);
		System.out.println(prioridad);
		System.out.println(texto);
		
		CasillaCorreo origen  = CasillaCorreoDAO.getInstancia().getCasillaPorNombre(nomCasOrigen)  ;
		CasillaCorreo destino = CasillaCorreoDAO.getInstancia().getCasillaPorNombre(nomCasDestino) ;
		
		if (origen != null && destino != null)
		{
			//TODO Validar Relacion Confianza
			
			System.out.println("Casillas SI Encontradas !");
			
			Calendar cal = Calendar.getInstance();
			Date fechActual = new Date (cal.getTime().getTime()) ;
			
			Mensaje nuevoMensaje = new Mensaje(origen, asunto, fechActual, texto, prioridad) ;
			nuevoMensaje.agregarDestinatario(destino) ;
			
			//Inbox nuevoInbox = new Inbox (nuevoMensaje , Estados.NO_LEIDO) ;
			//destino.agregarInbox(nuevoInbox) ;
			
			MensajeDAO.getInstancia().addMensaje(nuevoMensaje) ;
			
			// ESTO NO ANDA PORQUE EL DATO NO TRAE LA LISTA DE INBOXS
			// CUANDO LEVANTAMOS LA CASILLA DE DESTINO
			//InboxDAO.getInstancia().addInbox(nuevoInbox) ;
		}
		else
		{
			System.out.println("Casillas NO Encontradas !");
		}
		
		String address = "/formLogin.jsp";
		
		RequestDispatcher dispatcher = request.getRequestDispatcher(address);
	    dispatcher.forward(request, response);
		
		/*
		Date fechActual = new Date () ;

		CasillaCorreo orig = CasillaCorreoDAO.getInstancia().getCasillaPorNombre(nomCasOrigen) ;
		CasillaCorreo dest = CasillaCorreoDAO.getInstancia().getCasillaPorNombre(nomCasDestino) ;
		
		if (orig != null && dest != null)
		{
			System.out.println( orig.toString() );
			System.out.println( dest.toString() );
			
			Mensaje nuevoMail = new Mensaje (orig , asunto , fechActual , texto , prioridad) ;
			nuevoMail.agregarDestinatario(dest) ;
			
			Inbox nuevoInbox = new Inbox (nuevoMail , "Enviado") ;
			
			dest.agregarInbox(nuevoInbox) ;
			
			System.out.println("Su mensaje fue enviado correctamente !");
		}
		else
		{
			System.out.println("ERROR al buscar las casillas en la base de datos !");
		}
		*/
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		
	}
}
